#ifndef __HASHMAP_H__
#define __HASHMAP_H__

#include <stddef.h>
#include <stdint.h>

typedef struct Hashnode {
    uint64_t key0, key1;
    char *key_str;
    void *value;
    struct Hashnode *ls, *rs;
    size_t dep;
} Hashnode_t;

typedef Hashnode_t *Hashmap_t;

Hashmap_t hashmap_insert(Hashmap_t map, const char *key, void *value);
Hashmap_t hashmap_find(Hashmap_t map, const char *key);
// Hashmap_t hashmap_delete(Hashmap_t map, const char *key);
Hashmap_t hashmap_free(Hashmap_t map);
Hashmap_t hashmap_init();

#endif // __HASHMAP_H__